<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 数组降维
        // 写一个函数,接收一个数组作为参数,返回结果为已经降维的数组
        // 如下这个数组经过函数的处理侯得到[1,2,3,4,5]这个结果
        const arr = [1, [[2], [3, [4]], 5]]
        // function ls(array) {

        //     var song = []

        //     function li(array) {

        //         array.forEach(value => {

        //             value instanceof Array ? li(value) : song.push(value)

        //         });

        //     }

        //     li(array)


        //     song.sort((a, b) => {

        //         return a - b;

        //     })

        //     return song

        // }

        // console.log(ls(arr))



        // 声明降维函数
        function flattenDeep(arr) {
        //  声明空数组，添加元素
            return arr.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) 
            : acc.concat(val), [])
        }
         // 调用递归函数
        flattenDeep(arr);
        console.log(flattenDeep(arr));
    </script>
</body>

</html>